package com.ruoyi.veterinary.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 仓库管理对象 vet_inventory
 * 
 * @author ruoyi
 * @date 2024-01-19
 */
public class VetInventory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 库存ID */
    private Long inventoryId;

    /** 药品名称（兽药通用名/商品名） */
    @Excel(name = "药品名称")
    private String drugName;

    /** 规格（区分剂型，如：10%/100g/袋） */
    @Excel(name = "规格")
    private String drugSpecification;

    /** 药品厂家ID */
    @Excel(name = "药品厂家ID")
    private Long manufacturerId;

    /** 药品厂家名称 */
    @Excel(name = "药品厂家")
    private String manufacturerName;

    /** 兽药批号（对接国家追溯平台） */
    @Excel(name = "兽药批号")
    private String batchNumber;

    /** 进价（含运费/税费，保留2位小数） */
    @Excel(name = "进价")
    private BigDecimal purchasePrice;

    /** 数量（按最小包装统计） */
    @Excel(name = "数量")
    private Integer quantity;

    /** 休药期（天数） */
    @Excel(name = "休药期")
    private Integer withdrawalPeriod;

    /** 有效期至 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expiryDate;

    /** 库存状态：正常/临期/过期/冻结 */
    @Excel(name = "库存状态", readConverterExp = "正常=正常,临期=临期,过期=过期,冻结=冻结")
    private String inventoryStatus;

    /** 存储条件：常温/冷藏/冷冻 */
    @Excel(name = "存储条件", readConverterExp = "常温=常温,冷藏=冷藏,冷冻=冷冻")
    private String storageCondition;

    /** 适用动物 */
    @Excel(name = "适用动物")
    private String applicableAnimals;

    /** 病症类型 */
    @Excel(name = "病症类型")
    private String diseaseType;

    /** 关键字（含适用动物、病症类型标签） */
    @Excel(name = "关键字")
    private String keywords;

    /** 库存预警数量 */
    /** 库存预警数量 */
    @Excel(name = "库存预警数量")
    private Integer warningQuantity;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setInventoryId(Long inventoryId)
    {
        this.inventoryId = inventoryId;
    }

    public Long getInventoryId() 
    {
        return inventoryId;
    }
    public void setDrugName(String drugName) 
    {
        this.drugName = drugName;
    }

    public String getDrugName() 
    {
        return drugName;
    }
    public void setDrugSpecification(String drugSpecification) 
    {
        this.drugSpecification = drugSpecification;
    }

    public String getDrugSpecification() 
    {
        return drugSpecification;
    }
    public void setManufacturerId(Long manufacturerId) 
    {
        this.manufacturerId = manufacturerId;
    }

    public Long getManufacturerId() 
    {
        return manufacturerId;
    }
    public void setManufacturerName(String manufacturerName) 
    {
        this.manufacturerName = manufacturerName;
    }

    public String getManufacturerName() 
    {
        return manufacturerName;
    }
    public void setBatchNumber(String batchNumber) 
    {
        this.batchNumber = batchNumber;
    }

    public String getBatchNumber() 
    {
        return batchNumber;
    }
    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }
    public void setQuantity(Integer quantity) 
    {
        this.quantity = quantity;
    }

    public Integer getQuantity() 
    {
        return quantity;
    }
    public void setWithdrawalPeriod(Integer withdrawalPeriod) 
    {
        this.withdrawalPeriod = withdrawalPeriod;
    }

    public Integer getWithdrawalPeriod() 
    {
        return withdrawalPeriod;
    }
    public void setExpiryDate(Date expiryDate) 
    {
        this.expiryDate = expiryDate;
    }

    public Date getExpiryDate() 
    {
        return expiryDate;
    }
    public void setInventoryStatus(String inventoryStatus) 
    {
        this.inventoryStatus = inventoryStatus;
    }

    public String getInventoryStatus() 
    {
        return inventoryStatus;
    }
    public void setStorageCondition(String storageCondition) 
    {
        this.storageCondition = storageCondition;
    }

    public String getStorageCondition() 
    {
        return storageCondition;
    }
    public void setApplicableAnimals(String applicableAnimals) 
    {
        this.applicableAnimals = applicableAnimals;
    }

    public String getApplicableAnimals() 
    {
        return applicableAnimals;
    }
    public void setDiseaseType(String diseaseType) 
    {
        this.diseaseType = diseaseType;
    }

    public String getDiseaseType() 
    {
        return diseaseType;
    }
    public void setKeywords(String keywords) 
    {
        this.keywords = keywords;
    }

    public String getKeywords() 
    {
        return keywords;
    }
    public void setWarningQuantity(Integer warningQuantity) 
    {
        this.warningQuantity = warningQuantity;
    }

    public Integer getWarningQuantity() 
    {
        return warningQuantity;
    }
    
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("inventoryId", getInventoryId())
            .append("drugName", getDrugName())
            .append("drugSpecification", getDrugSpecification())
            .append("manufacturerId", getManufacturerId())
            .append("manufacturerName", getManufacturerName())
            .append("batchNumber", getBatchNumber())
            .append("purchasePrice", getPurchasePrice())
            .append("quantity", getQuantity())
            .append("withdrawalPeriod", getWithdrawalPeriod())
            .append("expiryDate", getExpiryDate())
            .append("inventoryStatus", getInventoryStatus())
            .append("storageCondition", getStorageCondition())
            .append("applicableAnimals", getApplicableAnimals())
            .append("diseaseType", getDiseaseType())
            .append("keywords", getKeywords())
            .append("warningQuantity", getWarningQuantity())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}